Retour index

Adressage indirect en assembleur 8051

Retour niveau sup

Le mode adressage indirect de base se décline en plusieurs sous-modes. La forme syntaxique de référence est un registre (R0, R1 ou DPTR) précédé du signe @. Ce mode d'adressage est possible en 8051 dans 3 cas et ne concerne à chaque fois que certaines instructions : il faut toujours penser à regarder lesquelles.
1- En mémoire RAM interne
2- En mémoire de données externe
3- En mémoire de programme

En RAM interne

L'adresse effective de la donnée est contenue dans R0 ou R1.

 

mov @R0, #12h

L'adresse effective de la destination est contenue dans R0.

En mémoire de données externe

L'adresse effective de la donnée est contenue dans DPTR, R0 ou R1. La donnée est toujours transférée de ou dans le registre A. Seule l'instruction "movx" permet de manipuler des données en mémoire de données externe.

 

movx A, @DPTR

L'adresse effective de la source est contenue dans DPTR, registre 16 bits : on peut ainsi balayer toute la zone mémoire de données externe. La destination est le registre A.

 

movx @R1, A

L'adresse effective poids faible de la source est contenue dans R1, registre 8 bits. L'adresse poids fort est préalablement positionnée dans le port P2 (adresse A0h). La source est le registre A.

En mémoire de programme

L'adresse effective de la donnée est la somme de A et DPTR ou la somme de A et PC (compteur de programme). La donnée est toujours transférée de ou dans le registre A. Seule l'instructions "movc" permet de manipule des données en mémoire de données externe.

 

movc @A+DPTR, A

L'adresse de la destination est contenue dans A+DPTR (16 bits). La source est le registre A.

 

movc A, @A+PC

L'adresse de la source est contenue dans A+PC (16 bits). La destination est le registre A.

Retour index

Suite